Skip to content

feat: AI asset pipeline track, Phase 1 - #132

Open
TMHSDigital wants to merge 6 commits into
mainfrom
feat/ai-asset-pipeline-phase-1
Open

feat: AI asset pipeline track, Phase 1#132
TMHSDigital wants to merge 6 commits into
mainfrom
feat/ai-asset-pipeline-phase-1

Conversation

@TMHSDigital

Copy link
Copy Markdown
Owner

Summary

Phase 1 of the provider-agnostic AI asset pipeline track (GLB in, engine-ready out). This repo does not generate meshes. No generation vendor is referenced in the new files.

  • ROADMAP: four-sub-track track (cleanup skills, engine export presets, headless template, live-session spike). Upcoming, unpinned, matching existing cadence.
  • Skill ai-mesh-cleanup: ordered cleanup sequence. Composes depsgraph-and-evaluated-data and mesh-editing-and-bmesh; does not replace them. Existing examples (lod-decimate-chain, collision-hull-proxy, unapplied-scale-gltf, prop-origin-transform, mesh-hygiene-audit) remain witnesses of individual contracts.
  • Four snippets: decimate_to_budget.py, convex_hull_collider.py, lod_chain.py (helper duplicated; snippets are not a package), gltf_draco_export.py.
  • Two rules: validate-imported-mesh-scale, no-unapplied-modifiers-on-export.
  • CI static gate: tests/check_import_export_rules.py scans snippets/ and templates/. examples/ is excluded because pathology witnesses are intentional.

Out of scope (untouched): ai-asset-pipeline-template/, live-session bridge, LICENSE, gallery/site.json, new examples/ entries.

calc_loop_triangles

Live-run-proven (docs + runtime): Mesh.calc_loop_triangles() is still required before reading mesh.loop_triangles on 4.5 LTS, 5.1, and 5.2. Tessellation is not implicit. No hasattr guard; the call is unconditional, same as examples/lod-decimate-chain/ and skills/depsgraph-and-evaluated-data.

Verified against:

glTF axis: operator RNA exposes export_yup, not FBX axis_forward / axis_up. The snippet passes export_yup explicitly. Inspection-only of RNA via the 5.2 bundled docs; live export with export_yup=True and Draco live-run-proven below.

Test plan

  • python tests/check_import_export_rules.py passes on snippets and templates
  • Canary fixtures fail the gate (output below), then removed (never committed; lived in gitignored .scratch/)
  • Snippet helpers probed headless on local binaries (not the full 53-example catalog)
  • blender-smoke 5.2 and 4.5 jobs on this PR (CI)
  • validate.yml / validate-counts / validate-manifest / drift-check on this PR (CI)

Evidence

Local binaries (live-run-proven)

Binary blender --version Probe
.scratch/blender-5.2.1-windows-x64/blender.exe Blender 5.2.1 LTS (9e2066aef7ef) PROBE PASS
.scratch/blender-5.1.2-windows-x64/blender.exe Blender 5.1.2 (ec6e62d40fa9) PROBE PASS
.scratch/blender-4.5.11-windows-x64/blender.exe Blender 4.5.11 LTS (4db51e9d1e1e) PROBE PASS

Probe covered: evaluated triangle count via evaluated_get / to_mesh / to_mesh_clear / calc_loop_triangles; DECIMATE COLLAPSE ratio clamp; under-budget returns None; convex hull collider copies matrix_world; LOD copies do not share the source mesh datablock; Draco glTF write with use_selection=True, export_yup=True, export_apply=True.

Full blender-smoke catalog (53 examples) was not run locally. That claim is inspection-only until CI.

Task 5 canary (live-run-proven)

Command:

python tests/check_import_export_rules.py .scratch/canary_import_scale.py .scratch/canary_unevaluated_export.py

Exit 1. stderr:

ERROR: .scratch/canary_import_scale.py: import_scene gltf/fbx plus mesh work without transform_apply and a unit-scale check (unit_settings, scale_length, or global_scale)
ERROR: .scratch/canary_unevaluated_export.py: export with modifiers.new but no export_apply=True, evaluation_mode, or modifier_apply

Clean tree (no extra paths) exits 0: import/export anti-pattern checks passed.

The two .mdc files are Cursor rules; CI enforces the same anti-patterns via the static scanner. A gate that has only ever passed is not trusted; both canaries failed as required.

License tracking

#131: ND terms vs documented snippet copy-and-adapt. LICENSE is not edited in this PR.

TMHSDigital and others added 6 commits September 10, 2026 22:45
Four sub-tracks (cleanup skills, engine export presets, headless template,
live-session spike) listed as upcoming and unpinned, matching existing cadence.

Signed-off-by: TMHSDigital <154358121+TMHSDigital@users.noreply.github.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Standalone helpers for evaluated triangle budgets, convex hull colliders,
LOD chains, and Draco-compressed glTF export. LOD duplicates the decimate
helper because snippets are not a package. calc_loop_triangles is always
called; tessellation is still explicit on 4.5 LTS and 5.x.

Signed-off-by: TMHSDigital <154358121+TMHSDigital@users.noreply.github.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Canonical ordered cleanup for an imported generated mesh: units, transform
apply, origin, normals, evaluated triangle count, decimate, collider.
Composes depsgraph and bmesh skills; does not generate meshes.

Signed-off-by: TMHSDigital <154358121+TMHSDigital@users.noreply.github.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Catch glTF/FBX import plus mesh work with no transform_apply and no unit
check, and export of live modifiers without export_apply or evaluation_mode.

Signed-off-by: TMHSDigital <154358121+TMHSDigital@users.noreply.github.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Static scan of snippets and templates so the two new rules fail on a
deliberate canary, not only on good input. examples/ is excluded because
pathology witnesses are intentional.

Signed-off-by: TMHSDigital <154358121+TMHSDigital@users.noreply.github.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
README, CLAUDE.md, AGENTS.md, and plugin.json now list 14 skills, 8 rules,
and 21 snippets so validate-counts and validate-manifest stay aligned.

Signed-off-by: TMHSDigital <154358121+TMHSDigital@users.noreply.github.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
@github-actions github-actions Bot added skills rules snippets documentation Improvements or additions to documentation ci labels Sep 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci documentation Improvements or additions to documentation rules skills snippets

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant